package 算法.NiuKe.JZ;

import java.util.*;

/**
 * @author:谢君臣
 * @Date:2021/4/159:29
 * @version:1.0
 * @function:  输入一个递增排序的数组和一个数字S，在数组中查找两个数，使得他们的和正好是S，
 *         如果有多对数字的和等于S，输出两个数的乘积最小的。
 */
public class JZ42 {
    public static void main(String[] args) {

    }
    public ArrayList<Integer> FindNumbersWithSum(int [] array, int sum) {
        HashSet<Integer> set = new HashSet<>();
        for (int i : array) {
            set.add(i);
        }
        ArrayList<Integer> res = new ArrayList<>();
        int min = Integer.MAX_VALUE;
        for (int i = 0; i < array.length; i++) {
            int temp = sum - array[i];
            if (temp<array[i])
                break;
            if (set.contains(temp)){
                ArrayList<Integer> list = new ArrayList<Integer>(Arrays.asList(array[i],temp));
                int n = array[i]*temp;
                if (min>n){
                    min = n;
                    res = list;
                }
            }
        }
        return res;
    }

}
